当前位置:  开发笔记 > 后端 > 正文

使用`open-uri`用逗号打开WIKI URL

如何解决《使用`open-uri`用逗号打开WIKIURL》经验,为你挑选了1个好方法。



1> Matchu..:

通常,人们只需要模块cgi,然后使用CGI::escape(str).

require 'cgi'
require 'open-uri'
escaped_page = CGI::escape("Thor_Industries,_Inc.")
url = "http://en.wikipedia.org/wiki/#{escaped_page}"
f = open(url)

但是,这似乎不适用于您的特定实例,仍然返回403.无论如何,我将留在此处作为参考.


编辑:维基百科拒绝您的请求,因为它怀疑您是机器人.似乎某些明确内容的页面被授予您,但那些与其"安全"模式不匹配的页面(例如那些包含点或逗号的页面)需要进行筛选.如果您实际输出内容(我这样做了Net::HTTP),您会得到以下内容:

脚本应使用带有联系信息的信息性用户代理字符串,否则它们可能会被IP阻止,恕不另行通知.

但是,提供用户代理字符串可以解决问题:

open("http://en.wikipedia.org/wiki/Thor_Industries,_Inc.",
  "User-Agent" => "Ruby/#{RUBY_VERSION}")

推荐阅读
小白也坚强_177
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有